using System;
using System.Runtime.Serialization;

namespace Dimok.Data {

	////////////////////////////////////////////////////////////////////////////////////////////////////
	/// <summary>	Exception for signalling no registry key errors. </summary>
	///
	/// <remarks>	Dimon, 12/21/2010. </remarks>
	////////////////////////////////////////////////////////////////////////////////////////////////////

	public class NoRegistryKeyException:Exception{
		public NoRegistryKeyException(string valueName):
			base("\nValue '"+valueName+"' has not been found in Registry.\n"){}
	}

	////////////////////////////////////////////////////////////////////////////////////////////////////
	/// <summary>	Exception for signalling no configuration path errors. </summary>
	///
	/// <remarks>	Dimon, 12/21/2010. </remarks>
	////////////////////////////////////////////////////////////////////////////////////////////////////

	public class NoConfigPathException:Exception{
		public NoConfigPathException(string sectionPath):
			base("\nPath '"+sectionPath+"' has not been found in *.config files.\n"){}
	}

	////////////////////////////////////////////////////////////////////////////////////////////////////
	/// <summary>	Exception for signalling no configuration value errors. </summary>
	///
	/// <remarks>	Dimon, 12/21/2010. </remarks>
	////////////////////////////////////////////////////////////////////////////////////////////////////

	[Serializable]
	public class NoConfigValueException:RemotingException{
		public NoConfigValueException(string sectionPath,string valueName):
			this("\nValue '"+sectionPath+"/"+valueName+"' has not been found in *.config files.\n"){
		}
		public NoConfigValueException(string message):base(message){
		}
		public NoConfigValueException(SerializationInfo info, StreamingContext context):base(info,context){}
	}
}
